1. Field of the Invention
The present invention relates generally to integrated circuits, and more particularly to clock timing circuitry for use in memory devices.
2. Description of the Related Art
Most integrated circuit devices are required to have some type of memory device for storing information, and there is a growing trend to integrate embedded memory arrays directly onto the a chip, such as, a microprocessor, an application specific integrated circuit (ASIC), etc. Typically, when a memory device is embedded into a chip, the memory device (e.g., an Asynchronous SRAM) is provided with circuitry for writing and reading the data. By way of example, such common circuitry typically includes Y-decoders, X-decoders, sense amplifiers, output buffers, address transition detectors (ATD's) and clock buffers. Therefore, to produce a memory device that has fast access times and quick recoveries after a read/write operation, each of the components of the common circuitry must be tuned to eliminate delays or inefficiencies.
With this in mind, FIG. 1 shows a prior art block diagram of a memory 100 created from a generator that may be embedded into an integrated circuit design. The memory 100 is shown having a memory array 102, which is the main memory array having a plurality of memory cells that are arranged in a row and column format. Typically, memory 100 is provided with a row decode 104, a column decode 106, control circuitry 105, an address transition detect (ATD) 110, and sense amplifiers and output buffers 107. It is these circuit components that are used to facilitate the writing and reading of data to or from selected cells in the memory array 102.
When the memory has an address transition detect (ATD) circuit 110, the memory is typically considered to be an asynchronous memory device. This is because the address transition detect (ATD) 110 will produce a clock input signal that is analogous to that produced by a synchronous memory device. By way of example, a synchronous memory device will have a "clock input" signal that identifies a read or a write operation when a transition from LOW-to-HIGH (i.e., a rising edge) occurs, and commence a pre-charge operation when a transition from HIGH-to-LOW (i.e., a falling edge) occurs. As shown in a waveform 120, a time lapse between the falling edge and the next rising edge (i.e., when the next read or write operation occurs), is the time needed by the memory 100 to prepare itself for a next read or write operation. In this example, the ATD 110 is shown receiving an address transition input that provides information of when a memory address in the memory array 102 is to be accessed for a read or write operation.
Although the address transition detect (ATD) 110 is optimized to provide a clock input signal waveform 120 for a specific memory array 102, when the memory array 102 is replaced with a different size memory array produced by the memory generator, the ATD 110 will continue to produce the fixed clock input signal waveform. The possibility of interchanging different size memory arrays is not an uncommon occurrence. In fact, many companies implement what are known as core libraries, wherein the core libraries may include a plurality of memory arrays from which to pick an choose from. However, this increased flexibility may cause an integrated circuit design, e.g., a memory and ATD circuit to be improperly matched. That is, the fixed clock input signal waveform 120 that was well suited for a single memory size 100 may not be well suited for different size memories.
By way of example, if the new memory array is larger than the memory array that was previously produced by a memory generator, the pre-charge delay may be too short due to increased loading. Of course, when the pre-charge delay is too short, the more loaded memory array may not be ready to perform the next read or write operation. On the other hand, if the memory array 102 is replaced with a smaller sized memory array, then the fixed pre-charge delay may be too long, thereby causing a slow down in the rate at which a read or a write operation may be performed. In either case, the ATD 110 for a given memory will also have to be replaced and tuned at an increased cost each time the memory array 102 is modified.
In view of the foregoing, there is a need for a memory that has built-in circuitry for adjusting its clock input signal waveform in response to a change in memory size.